package ACWing.TheNnderlyingAlgorithm.二分;
//789. 数的范围
import java.util.Scanner;

/**
 * @author :chenjie
 * @date :Created 2022/11/17 11:35
 */
public class TwoPoints {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int q=sc.nextInt();
        int[]arr=new int[n];
        int[]s=new int[q];
        for (int i = 0; i < n; i++) {
            arr[i]=sc.nextInt();
        }
        for (int i = 0; i < q; i++) {
            s[i]=sc.nextInt();
        }
        for (int i = 0; i < q; i++) {
            System.out.println(FindMin(0, n - 1, arr, s[i])+" "+FindMax(0, n - 1, arr, s[i]));
        }
    }
    public static int FindMin(int l,int r,int[]arr,int x){
        while (l<r){
            int mid=l+r+1>>1;
            if(arr[mid]<=x){//加等号是查找符合的值不加等号则根据条件查找与值最相近的数可能是最大值可能是最小值
                l=mid;
            }else {
                r=mid-1;
            }
        }

//        while (l<r){
//            int mid=l+r>>1;
//            if(arr[mid]>=x){//加等号寻找最先出现的值的下标
//                r=mid;
//            }else {
//                l=mid+1;
//            }
//
//        }
        if(arr[r]==x){//找到
            return r;
        }else {//无
            return -1;
        }

    }
    public static int FindMax(int l,int r,int[]arr,int x){

        while (l<r){
            int mid=l+r>>1;
            if(arr[mid]>x){//不加等号查找小这个数的最大值的下标
                r=mid;
            }else {
                l=mid+1;
            }

        }
        if(arr[r]==x){//如果这个数本身是最大值
            return r;
        }
        if(arr[r-1]==x){//查找小于这个数的最大值成功
            return r-1;
        }else {//查无
            return -1;
        }

    }

}
